home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / dev / misc / gms_dev.lha / GMS / Source / C / Blitter / Moire.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-09  |  1.5 KB  |  67 lines

  1. /*
  2. ** Name:      Colour
  3. ** Version:   1.0
  4. ** Author:    Paul Manias
  5. ** Copyright: DreamWorld Productions (c) 1997
  6. ** SAS/C:     sc Colour.c link startup=lib:gms.o data=far opt nostackcheck
  7. ** Doc:       Generates some nice patterns.  Hold LMB to exit.
  8. **
  9. **
  10. */
  11.  
  12. #include <proto/games.h>
  13.  
  14. extern struct GMSBase *GMSBase;
  15. APTR   PREFSNAME = DEFAULT;
  16.  
  17. struct GameScreen *screen;
  18.  
  19. void Moire(void);
  20.  
  21. #define AMTCOLOURS 4
  22.  
  23. ULONG palette[AMTCOLOURS] = { 0x000000,0x505050,0x707070,0xF0F0F0 };
  24.  
  25. /***********************************************************************************/
  26.  
  27. void main(void)
  28. {
  29.   if (screen = AddScreenTags(TAGS_GAMESCREEN,NULL,
  30.      GSA_AmtColours, sizeof(palette),
  31.      GSA_Palette,    palette,
  32.      TAGEND)) {
  33.  
  34.      ShowScreen(screen);
  35.      InitJoyPorts();
  36.  
  37.      Moire();
  38.  
  39.   DeleteScreen(screen);
  40.   }
  41. }
  42.  
  43. /***********************************************************************************/
  44.  
  45. void Moire(void)
  46. {
  47.   WORD xm,ym,i;
  48.  
  49.   while(!(ReadJoyPort(JPORT1,JT_ZBXY) & MB_LMB)) {
  50.     ClearBitmap(screen->Bitmap);
  51.     xm = FastRandom(screen->ScrWidth);        /* Coordinates of Centre Point */
  52.     ym = FastRandom(screen->ScrHeight);
  53.  
  54.     for (i=0; i < screen->ScrHeight; i++) {
  55.        DrawLine(screen->Bitmap, xm, ym, 0, i, i%(2+1));
  56.        DrawLine(screen->Bitmap, xm, ym, screen->ScrWidth,i, i%(2+1));
  57.     }
  58.  
  59.     for (i=0; i < screen->ScrWidth; i++) {
  60.        DrawLine(screen->Bitmap, xm, ym, i, 0, i%(2+1));
  61.        DrawLine(screen->Bitmap, xm, ym, i, screen->ScrHeight, i%(2+1));
  62.     }
  63.     WaitTime(100);
  64.   }
  65. }
  66.  
  67.